python data structures and algorithms interview